package com.sjd.farm.domain;

import com.sjd.common.annotation.Excel;
import com.sjd.common.core.domain.BaseEntity;
import lombok.*;

import javax.validation.constraints.Min;

/**
 * 农场土地信息对象 sjd_farm_land
 *
 * @author joker
 * @date 2022-01-24
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class SjdFarmLand extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Excel(name = "土地主键")
    private Long landId;

    /**
     * 土地编号
     */
    @Excel(name = "土地编号")
    private String landNo;

    /**
     * 土地名称
     */
    @Excel(name = "土地名称")
    private String landName;

    /**
     * 土地图片
     */
    @Excel(name = "土地图片地址")
    private String landImg;

    /**
     * 土地状态：1-在售(只有在售状态可改信息) 2-已被认领
     */
    @Excel(name = "土地状态", readConverterExp = "0=待上架,1=在售,2=已被认领")
    private Integer landStatus;

    /**
     * 土地售价（金豆）
     */
    @Excel(name = "土地售价（金豆）")
    @Min(value = 1, message = "土地售价数值不能小于1金豆")
    private Integer landPrice;

    /**
     * 土地使用期限（单位为月）,默认12个月
     */
    @Excel(name = "土地使用期限（月）")
    @Min(value = 1, message = "土地使用期限不能小于1个月")
    private Integer usedLimit;

    @Excel(name = "升级所需积分")
    @Min(value = 1, message = "升级所需积分不能小于1分")
    private Integer upgradeNeedIntegral;

    @Override
    public String toString() {
        return "[土地主键：" + this.getLandId() + "]，" +
                "[土地编号：" + this.getLandNo() + "]，" +
                "[土地名称：" + this.getLandName() + "]，" +
                "[土地状态：" + this.getLandStatus() + "]，" +
                "[土地售价（金豆）：" + this.getLandPrice() + "]，" +
                "[土地使用期限（月）：" + this.getUsedLimit() + "]" +
                "[升级所需积分：" + this.getUpgradeNeedIntegral() + "]" ;
    }

    public interface Param {
        /**
         * 待上架
         */
        int WAIT_UPDATE = 0;
        /**
         * 在售
         */
        int SALE = 1;
        /**
         * 已被认领
         */
        int CLAIM = 2;
    }
}
